package co.com.travelsoft.ati.daos;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import co.com.travelsoft.ati.entities.Itinerarios;
import co.com.travelsoft.ati.exception.TravelSoftException;
import co.com.travelsoft.ati.utils.FabricaSesionesUtil;


public class ItinerariosDAO 
{
	
	public static void crear(Itinerarios itinerarios) throws TravelSoftException{
		
		Session sesion = FabricaSesionesUtil.getInstancia().getCurrentSession();
		Transaction trx = null;
		try {
			trx = sesion.beginTransaction();
			sesion.save(itinerarios);
			trx.commit();
		} catch (Exception e) {
			if(trx!=null && trx.isActive()){
				trx.rollback();
				throw new TravelSoftException("Ha sucedido un error al intentar crear un itinerario.", e);
			}
		}
		
	}
	
	public static Itinerarios buscarPorId(Itinerarios itinerarios){
		Session sesion = FabricaSesionesUtil.getInstancia().getCurrentSession();
		return  (Itinerarios)sesion.createQuery("select c from Itinerarios as c where c.codigo="+itinerarios.getCodigo()).uniqueResult();
	}
	
	public static List<Itinerarios> listar(){
		Session sesion = FabricaSesionesUtil.getInstancia().getCurrentSession();
		return sesion.createQuery("select c from Itinerarios as c").list();
	}
	
	public static void actualizar(Itinerarios itinerarios){
		Session s = FabricaSesionesUtil.getInstancia().getCurrentSession();
		s.update(itinerarios);
	}
	
	public static void borrar(Itinerarios itinerarios){
		Session s = FabricaSesionesUtil.getInstancia().getCurrentSession();
		s.delete(itinerarios);
	}

}
